# -*- coding: utf-8 -*-#
#-------------------------------------------------------------------------------
# 建立者:        黄周云  
# Name:         hmwk02
# Description:
# Author:       ASUS
# Date:         2019/3/23
#-------------------------------------------------------------------------------



'''
编写用于计算阶乘的JC类，该类有一个compute方法，用于计算阶乘，然后编写一个异常类JCException。当compute方法的参数n的值小于0时，
抛出JCException异常，否则正常计算阶乘的值，在调用compute方法时使用try...except语句明确捕抓捉JCException异常，并输出异常信息。
'''


class JCException(Exception):
    pass


class JC:
    def compute(self,n):
        if n < 0:
            raise JCException("n不能小于0")
        else:
            if n == 0 or n == 1:
                return 1
            else:
                return n * self.compute(n-1)


if __name__ == "__main__":
    try:
        n = int(input("请输入需要求阶乘的值："))
        c = JC()
        print(c.compute(n))
    except JCException as e:
        print(e)









